package qc.module.ehs.api.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import qc.common.core.exception.QCPromptException;
import qc.module.ehs.dto.unitstaticinfo.EhsUnitStaticInfoDto;
import qc.module.ehs.service.EhsUnitStaticInfoService;

import java.util.List;

/**
 * UnitStaticinfoController
 *
 * @author QuCheng Tech
 * @create 2024/5/22
 */
@RestController
@RequestMapping("/unitstaticinfo")
public class UnitStaticinfoController {
    
    @Autowired
    private EhsUnitStaticInfoService service;

    /**
     * 获取指定单元的静态信息列表 - 同时支持@RequestParam和@PathVariable方式
     * 
     * @param unitid 单元ID
     * @return List<EhsUnitStaticInfoDto>
     * @author QuCheng Tech
     * @since 2024/8/14
     */
    @GetMapping("/getbyunitid")
    public List<EhsUnitStaticInfoDto> getByUnitidByParam(@RequestParam String unitid) throws QCPromptException {
        return service.getByUnitid(unitid);
    }

    /**
     * 获取指定单元的静态信息列表 - 同时支持@RequestParam和@PathVariable方式
     *
     * @param unitid 单元ID
     * @return List<EhsUnitStaticInfoDto>
     * @author QuCheng Tech
     * @since 2024/8/14
     */
    @GetMapping("/getbyunitid/{unitid}")
    public List<EhsUnitStaticInfoDto> getByUnitidByPath(@PathVariable String unitid) throws QCPromptException {
        return service.getByUnitid(unitid);
    }

    /**
     * 获取指定静态信息 - 同时支持@RequestParam和@PathVariable方式
     * 
     * @param id 静态信息ID
     * @return EhsUnitStaticInfoDto
     * @author QuCheng Tech
     * @since 2024/8/14
     */
    @GetMapping("/get")
    public EhsUnitStaticInfoDto getByParam(@RequestParam String id) throws QCPromptException {
        return service.get(id);
    }

    /**
     * 获取指定静态信息 - 同时支持@RequestParam和@PathVariable方式
     *
     * @param id 静态信息ID
     * @return EhsUnitStaticInfoDto
     * @author QuCheng Tech
     * @since 2024/8/14
     */
    @GetMapping("/get/{id}")
    public EhsUnitStaticInfoDto getByPath(@PathVariable String id) throws QCPromptException {
        return service.get(id);
    }

    /**
     * 新增单元静态信息
     * 
     * @param dto
     * @return 成功返回null，失败返回错误或提示信息
     * @author QuCheng Tech
     * @since 2024/8/14
     */
    @RequestMapping(value = "/add",method = {RequestMethod.POST,RequestMethod.PUT})
    public String add(@RequestBody EhsUnitStaticInfoDto dto){
        return service.add(dto);
    }

    /**
     * 修改单元静态信息
     *
     * @param dto
     * @return 成功返回null，失败返回错误或提示信息
     * @author QuCheng Tech
     * @since 2024/8/14
     */
    @RequestMapping(value = "/update",method = {RequestMethod.POST,RequestMethod.PUT})
    public String update(@RequestBody EhsUnitStaticInfoDto dto){
        return service.update(dto);
    }

    /**
     * 删除指定静态信息 - 同时支持@RequestParam和@PathVariable方式
     * 
     * @param id 静态信息ID
     * @return 成功返回null，失败返回错误或提示信息
     * @author QuCheng Tech
     * @since 2024/8/14
     */
    @DeleteMapping("/delete")
    public String deleteByParam(@RequestParam String id){
        return service.delete(id);
    }

    /**
     * 删除指定静态信息 - 同时支持@RequestParam和@PathVariable方式
     *
     * @param id 静态信息ID
     * @return 成功返回null，失败返回错误或提示信息
     * @author QuCheng Tech
     * @since 2024/8/14
     */
    @DeleteMapping("/delete/{id}")
    public String deleteByPath(@PathVariable String id){
        return service.delete(id);
    }
}
